package com.ruoyi.cost.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cost.domain.AccSubject;
import com.ruoyi.cost.domain.AccVou;

/**
 * 记账凭证Service接口
 * 
 * @author 王志旸
 * @date 2024-07-09
 */
public interface IAccVouService  extends IService<AccVou>

{
    /**
     * 查询记账凭证
     * 
     * @param id 记账凭证主键
     * @return 记账凭证
     */
    public AccVou selectAccVouById(String id);

    /**
     * 查询记账凭证列表
     * 
     * @param accVou 记账凭证
     * @return 记账凭证集合
     */
    public List<AccVou> selectAccVouList(AccVou accVou);

    /**
     * 新增记账凭证
     * 
     * @param accVou 记账凭证
     * @return 结果
     */
    public int insertAccVou(AccVou accVou);

    /**
     * 修改记账凭证
     * 
     * @param accVou 记账凭证
     * @return 结果
     */
    public int updateAccVou(AccVou accVou);

    /**
     * 批量删除记账凭证
     * 
     * @param ids 需要删除的记账凭证主键集合
     * @return 结果
     */
    public int deleteAccVouByIds(String[] ids);

    /**
     * 删除记账凭证信息
     * 
     * @param id 记账凭证主键
     * @return 结果
     */
    public int deleteAccVouById(String id);

    List<AccVou> selectVouList(String accMode, String accSubName);
    List<AccVou> selectVouList1(String accMode);

    List<AccVou> findByAccVouCodeAndAccVouDate(String accVouCode, String accVouDate);

    AccSubject getVouSubType(String subCode);

    List<AccVou> getList(AccVou accVou);

    List<Map> getSupListBySpares(ArrayList<String> spares);

    List<Map> getSupCategory(String accMode, String accSubNum);

    List<Map<String, String>> findSupParent(String accMode);

    List<Map<String, String>> findSupChild(String accMode, String custom_code);

    String getAllYuE(String accMode, String accSubName, String accBusiness,String spare1);

    List<AccVou> getListCaiWu(AccVou accVou);
    List<AccVou> getListyusuan(AccVou accVou);

    List<HashMap> findSups(String[] split, String accMode);

    List<HashMap> findSupsLoc(String[] supList, String accMode, String[] supSupList);

    List<HashMap> findSupsOne(String[] split, String accMode);

    List<HashMap> findSupsLocOne(String[] supList, String accMode, String[] supSupList);

    List<HashMap> findSupsBySub(String[] supList, String accMode, String accSubName);

    Map findSpareValue(String assisted_code, String assisted_name, String accMode);
}
